package com.yl.nettylearning.netty.day04;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

/**
 * @author yangl
 */
public class ByteBuf01 {
    public static void main(String[] args) {
        /**
         * 创建一个ByteBuf
         * 创建对象，该对象包含一个数组，是一个byte[10]
         * 在netty的ByteBuf中，不需要flip反转，因为底层维护了readIndex和writeIndex
         * readIndex:下一个读取的位置
         * writeIndex:下一个写入的位置
         * 通过readIndex和writeIndex和capacity将buffer分成三个区域
         * 0--readIndex已经读取的区域
         * readIndex--writeIndex 可读的区域
         * writeIndex--capacity可写的范围
         */
        ByteBuf byteBuf = Unpooled.buffer(10);
        for (int i = 0; i < 10; i++) {
            byteBuf.writeByte(i);
        }

        System.out.println("buf的长度是：" + byteBuf.capacity());
        //输出
        for (int i = 0; i < byteBuf.capacity(); i++) {
            System.out.println(byteBuf.getByte(i));
            System.out.println(byteBuf.readByte());
        }

    }
}
